package com.zb.order.service;

import com.zb.entity.ZjAccount;
import com.zb.entity.ZjWorkOrder;
import com.zb.sms.entity.ReceiveVo;
import com.zb.sms.entity.SendWorkRemindVo;
import com.zb.view.ViewNetworkEmpAccount;
import com.zb.view.ViewNetworkEmpDetail;
import com.zb.vo.OrderSlaSelectVo;
import com.zb.vo.OrderSlaVo;

import java.util.List;

/**
 * @Author WEN
 * @Date 2024/3/9 0009
 **/
public interface WorkSlaUtilService {

    /**
     * 获取工单Sla信息
     * @param slaSelectVos 搜索对象
     */
    List<OrderSlaVo> getOrderSlaInfo(List<OrderSlaSelectVo> slaSelectVos);

    /**
     * 获取工单Sla信息
     * @param slaSelectVo 搜索对象
     */
    OrderSlaVo getOrderSlaInfo(OrderSlaSelectVo slaSelectVo);

    /**
     * 获取提醒人员信息
     * @param accountList 工单客服/指定人员结果
     * @param networkEmpDetails 服务商负责人结果
     * @param networkEmpAccountList 服务人员结果
     * @param remindEmpTypes 提醒人员类型：1-工单客服，2-服务商负责人，3-工程师，4-指定人员
     * @param remindEmpIds 指定人员ID，当remindEmpType=4时生效
     * @param orderList 工单数据
     */
    void getReminderEmpInfo(List<ZjAccount> accountList, List<ViewNetworkEmpDetail> networkEmpDetails, List<ViewNetworkEmpAccount> networkEmpAccountList,
                            List<Integer> remindEmpTypes, List<Long> remindEmpIds, List<ZjWorkOrder> orderList);

    /**
     * 获取接收人信息
     * @param remindEmpType
     * @param accountList
     * @param networkEmpDetails
     * @param networkEmpAccountList
     * @param order
     * @return
     */
    ReceiveVo getReceiveEmpInfo(Integer remindEmpType, List<ZjAccount> accountList, List<ViewNetworkEmpDetail> networkEmpDetails, List<ViewNetworkEmpAccount> networkEmpAccountList, ZjWorkOrder order);
}
